package com.handydata.antifraud.service;

import com.handydata.antifraud.bo.orderbaseinfo.EnterLetterDetailQueryReqBO;
import com.handydata.antifraud.bo.orderbaseinfo.EnterLetterDetailQueryResBO;
import com.handydata.antifraud.bo.orderbaseinfo.OrderBaseInfoReqBO;
import com.handydata.antifraud.bo.orderbaseinfo.OrderBaseInfoResBO;
import com.handydata.antifraud.bo.orderbaseinfo.QueryOrderListReqBO;
import com.handydata.antifraud.bo.orderbaseinfo.QueryOrderListResBO;
import com.handydata.common.exception.SysException;

/**
 * 订单基础信息表Service接口
 * 
 * @author guolong
 * @email jishu@handy-data.cn
 * @date 2019-08-18 21:55:41
 */
public interface OrderBaseInfoService {
	
	/**
	 * 
	 * 创建订单基础信息表
	 * @param req 请求BO对象
	 * @return
	 */
	OrderBaseInfoResBO createOrderBaseInfo(OrderBaseInfoReqBO req) throws SysException;
	
	/**
	 * 
	 * 修改订单基础信息表
	 * @param req 请求BO参数
	 * @return
	 */
    OrderBaseInfoResBO modifyOrderBaseInfo(OrderBaseInfoReqBO req) throws SysException;
	
	/**
	 * 
	 * 删除订单基础信息表
	 * @param req 请求BO参数
	 * @return
	 */
    OrderBaseInfoResBO deleteOrderBaseInfo(OrderBaseInfoReqBO req) throws SysException;
	
	/**
	 * 
	 * 查询订单基础信息表
	 * @param req 请求BO参数
	 * @return
	 */
    OrderBaseInfoResBO queryOrderBaseInfo(OrderBaseInfoReqBO req) throws SysException;
    
	/**
	 * 业务进件管理列表查询
	 * 
	 * @param req
	 *            请求BO参数
	 * @return
	 */
    QueryOrderListResBO queryOrderList(QueryOrderListReqBO req);
    
    /**
     * 业务进件详情查询
     * @param req
     * @return
     */
    EnterLetterDetailQueryResBO enterLetterDetailQuery(EnterLetterDetailQueryReqBO req);

	/**
	 *
	 * 修改订单基础信息表
	 * @param req 请求BO参数
	 * @return
	 */
	OrderBaseInfoResBO modifyOrderBaseInfoBy(OrderBaseInfoReqBO req) throws SysException;

	//保存数据到数据库中，发送mq消息，设置redis标志位
	void saveDataToDbMqRedis(OrderBaseInfoReqBO orderBaseInfoReqBO) throws Exception;
    
}
